%NOIP2005-S T3 include "alldifferent.mzn"; %input int: n; array[1..n,1..2] of int: like; %输入文件的第一行是一个整数 n(3 <= n <= 50000),表示一共有 n 个同学。其后 n 行每行 包括两个不同的正整数,以一个空格隔开,分别表示编号是 1 的同学最希望相邻的两个同学 的编号,编号是 2 的同学最希望相邻的两个同学的编号,......,编号是 n 的同学最希望相邻 的两个同学的编号。 %description array[1..n,1..n] of var 1..n: shift; array[1..n] of var 1..n: M; array[1..n,1..n] of var 1..n: position; function var int: precede(int: i)= if i>1 then i-1 else n endif; function var int: follow(int: i)= if i